package com.project.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.GradeBean;
import com.project.bean.RoleBean;
import com.project.bean.UserBean;

import java.util.List;

public class GradeController {
    /**
     * 分页动态查询用户信息
     * 输入：页码，用户名
     * 处理：分页动态查询用户信息
     * 输出：分页对象
     * 用户信息：用户编号，用户名，密码，真实姓名
     * @param pageNum
     * @param username
     * @return
     */
    public IPage<UserBean> cutFindByItem(Integer pageNum,String username){

        return null;
    }

    /**
     * 根据角色Id数组查询权限
     * 输入：角色Id数组
     * 处理：根据角色Id集合查询权限，权限去重
     * 输出：权限集合
     * 权限信息：权限ID，权限名称
     * @param roleIdList
     * @return
     */
    public List<GradeBean> countGrade(List<Integer> roleIdList){
        return null;
    }

    /**
     * 添加用户
     * 输入：用户名，真实姓名，角色id集合
     * 处理：添加用户， 同时添加该用户拥有的角色
     * 输出：ok
     */
    public void addUser(String username,String realName,List<Integer> roleIdList){

    }

    /**
     * 删除用户
     * 输入：用户id
     * 处理：删除用户，同时删除用户拥有的角色记录
     * 输出：ok
     */
    public void delUser(Integer userId){}

    /**
     * 查看用户角色
     * 输入：用户Id
     * 处理：根据用户id，查询用户信息，并查询用户拥有角色集合
     * 输出：用户对象
     * 用户信息：用户ID，用户名，真实姓名，密码、角色集合
     * 角色信息：角色ID，角色名称
     * @return
     */
    public UserBean findRole(Integer userId){
        return null;
    }

    /**
     * 修改用户角色
     * 输入：用户id，角色id集合
     * 处理：根据用户id，角色id集合，修改用户角色
     * 返回：ok
     */
    public String updateRole(Integer useId,List<Integer> roleIdList){
        return null;
    }

    /**
     * 查询所有角色信息
     * 输入：无
     * 处理：查询所有角色信息
     * 输出：角色集合
     * 角色信息：角色编号，角色名称
     * @return
     */
    public List<RoleBean> findAllRole(){
        return null;
    }

    /**
     * 分页查询所有角色信息
     * 输入：页码
     * 处理：分页查询所有角色信息
     * 输出：分页对象
     * 角色信息：角色编号，角色名称
     * @return
     */
    public IPage<RoleBean> cutFind(Integer pageNum){
        return null;
    }

    /**
     * 查询所有权限
     * 输入：无
     * 处理：查询所有权限
     * 输出：权限集合
     * 权限信息：权限编号，权限名称
     * @return
     */
    public IPage<GradeBean> findAllGrade(){
        return null;
    }

    /**
     * 添加角色
     * 输入：角色名称，权限id集合
     * 处理：添加角色，并添加角色拥有的权限
     * 输出：ok
     */
    public String addRole(String roleName,List<Integer> gradeIdList){
        return null;
    }

    /**
     * 删除角色
     * 输入：角色id
     * 处理：
     * 1、删除该角色拥有的权限信息（角色权限中间表记录）
     * 2、删除该角色拥有的用户信息（用户角色中间表记录）
     * 3、按角色ID删除角色
     * 输出：成功ok，失败no
     * @param roleId
     * @return
     */
    public String delRole(Integer roleId){
        return "ok";
    }

    /**
     * 查看角色
     * 输入：角色id
     * 处理：根据角色id查看角色信息，并查看角色拥有的权限
     * 返回：角色对象
     * 角色信息：角色ID，角色名称，权限集合
     * 权限信息：权限ID，权限名称
     * @param roleId
     * @return
     */
    public RoleBean findByRoleId(Integer roleId){
        return null;
    }

    /**
     * 修改角色权限
     * 输入：角色id，权限id集合
     * 处理：根据角色id和权限id集合，修改角色权限
     * 输出：ok
     * @param roleId
     * @param gradeIdList
     */
    public void update(Integer roleId,List<Integer> gradeIdList){

    }
}
